// "use strict";

/* ===========================
 * 无法创建全局变量
 * =========================== */

// function foo() {
//   a = 10;
// }
// foo();
// console.log(`a`, a);

/* ===========================
 * 会引起静默失败的赋值抛出异常
 * =========================== */

name.age = 100;

/* ===========================
 * //不允许函数有相同的参数
 * =========================== */

// function bar(x, y, x) {
//   console.log(x, y, x);
// }
// bar(1, 2, 3);

/* ===========================
 * 不允许使用with语句
 * =========================== */

/* ===========================
 * 不允许0的八进制语法
 * =========================== */

/* ===========================
 * eval 不再为上层引用变量
 * =========================== */
var msgString = 'var message = "hello world"; console.log(message)';
eval(msgString);
console.log(`message`, message);

/* ===========================
 * 不允许试图修改或者删除不允许的属性
 * =========================== */
var obj = {};
Object.defineProperty(obj, "name", {
  value: "lisi",
  writable: false,
  configurable: false,
});
obj.name = "zhangsan";
console.log(`obj.name`, obj.name);
// delete obj.name;
